Bug 555523 – gtk_scale_button_set_adjustment should accept NULL
authorChristian Dywan <cdywan@src.gnome.org>
Thu, 9 Oct 2008 16:19:06 +0000 (16:19 +0000)
committerChristian Dywan <cdywan@src.gnome.org>
Thu, 9 Oct 2008 16:19:06 +0000 (16:19 +0000)
* gtk/gtkscalebutton.c (gtk_scale_button_set_adjustment):
Create a new adjustment if NULL is passed, like other widgets

svn path=/trunk/; revision=21620

ChangeLog
gtk/gtkscalebutton.c

index 5402b6f1ca1699a9f2843f7ddebe3b119cf0e293..8718708bcef668b4302646cb8484ea8cbad63c28 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-10-09  Christian Dywan  <christian@imendio.com>
+
+       Bug 555523 – gtk_scale_button_set_adjustment should accept NULL
+
+       * gtk/gtkscalebutton.c (gtk_scale_button_set_adjustment):
+       Create a new adjustment if NULL is passed, like other widgets
+
 2008-10-09  Christian Dywan  <christian@imendio.com>
 
        Bug 555578 – GtkTable propertiy maxima are wrong
index c70573bc933e2e8433d397a62759b4cad7a42e4e..b6933bc23cec0ff5667b537211bbc8337317a4cc 100644 (file)
@@ -678,16 +678,22 @@ gtk_scale_button_set_adjustment   (GtkScaleButton *button,
                                 GtkAdjustment  *adjustment)
 {
   g_return_if_fail (GTK_IS_SCALE_BUTTON (button));
-  g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
+  if (!adjustment)
+    adjustment = (GtkAdjustment*) gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
+  else
+    g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
 
-  if (button->priv->adjustment)
-    g_object_unref (button->priv->adjustment);
-  button->priv->adjustment = g_object_ref_sink (adjustment);
+  if (button->priv->adjustment != adjustment)
+    {
+      if (button->priv->adjustment)
+        g_object_unref (button->priv->adjustment);
+      button->priv->adjustment = g_object_ref_sink (adjustment);
 
-  if (button->priv->scale)
-    gtk_range_set_adjustment (GTK_RANGE (button->priv->scale), adjustment);
+      if (button->priv->scale)
+        gtk_range_set_adjustment (GTK_RANGE (button->priv->scale), adjustment);
 
-  g_object_notify (G_OBJECT (button), "adjustment");
+      g_object_notify (G_OBJECT (button), "adjustment");
+    }
 }
 
 /**